//
//  main.c
//  4 chapter
//
//  Created by edz on 2020/6/26.
//  Copyright © 2020 edz. All rights reserved.
//

#include <stdio.h>


#if 0
// 练习4-1
int main(void)
{
    int no;
    do{
        printf("请输入一个整数：");
        scanf("%d", &no);
        
        if (no == 0)
            puts("该整数为0");
        else if (no > 0)
            puts("该整数为正数");
        else
            puts("该整数为负数");
    }while (1);
    return 0;
}
#endif


#if 0
// 练习4-2
int main(){
    int a,b,sum=0;
    int temp = 0;
    printf("请输入两个整数：\n");
    printf("整数A：");
    scanf("%d",&a);
    printf("整数B：");
    scanf("%d",&b);
    if (a > b) {
        temp = a;
        a = b;
        b =temp;
    }
    
    do {
        sum = sum + a ;
        a++;
    } while (a <= b);
    printf("%d\n",sum);
    return 0;
}
#endif


#if 0
// 练习4-3
int main(void)
{
    int no;
    int m;
    printf("请输入一个正整数：");
    scanf("%d", &no);
    m = no;
    while (no >= 0) {
        printf("%d ", no);
        no--;
    }
    if (m >= 0) {
        printf("\n");
    }

    return 0;
}
#endif


#if 0
// 练习4-4
int main(void)
{
    int no;
    int m;
    printf("请输入一个正整数：");
    scanf("%d", &no);
    m = no;
    while (no >= 1)
        printf("%d ", no--);

    if (m >= 0) {
        printf("\n");
    }

    return 0;
}
#endif



#if 0
// 练习4-5
int main(void)
{
    int i, no;
    int m;
    printf("请输入一个正整数：");
    scanf("%d", &no);
    m = no;
    i = 1;
    while (i <= no)
        printf("%d ", i++);
    if (m >= 0) {
        printf("\n");
    }

    return 0;
}
#endif


#if 0
// 练习4-6
int main(void)
{
    int i, no;

    printf("请输入一个正整数：");
    scanf("%d", &no);

    i = 0;
    while (i < no - 2)
        printf("%d ",i = i+2);
    printf("\n");

    return 0;
}
#endif


#if 0
// 练习4-7
#include <math.h>
int main(void)
{
    int i,no;
    int m = 1;
    printf("请输入一个正整数：");
    scanf("%d", &no);

    i = 0;
    while (m < no){
        printf("%d ", m);           //m = m*2;
        i++;
        m = pow(2, i);
    }
    printf("\n");

    return 0;
}
#endif


#if 0
// 练习4-8
int main(void)
{
    int no;
    int m;
    printf("请输入一个正数：");
    scanf("%d", &no);
    m = no;
    while (no-- > 0)
        putchar('*');
    if (m >= 1) {
        putchar('\n');
    }

    return 0;
}
#endif


#if 0
// 练习4-9
int main(){
    int no;
    printf("请输入一个正整数：");
    scanf("%d",&no);
    while (no > 1) {
        printf("+-");
        no = no -2;
        if (no == 1) {
            printf("+");
        }
    }
    printf("\n");
    return 0;
}
#endif


#if 0
// 练习4-10
int main(void)
{
    int no;

    printf("请输入一个正整数：");
    scanf("%d", &no);

    while (no-- > 0){
        putchar('*');
        putchar('\n');
    }
    return 0;
}
#endif


#if 0
// 练习4-11
int main(void)
{
    int no;

    do {
        printf("请输入一个正整数：");
        scanf("%d", &no);
        if (no <= 0)
            puts("请不要输入非正整数！！！");
    } while (no <= 0);
    printf("您输入的正整数是：%d\n",no);
    printf("该整数逆向显示的结果是：");
    while (no > 0) {
        printf("%d", no % 10);
        no /= 10;
    }

    puts("。");

    return 0;
}
#endif


#if 0
// 练习4-12
int main(){
    int number , count = 0;
    printf("请输入一个整数：");
    scanf("%d" , &number);
    if (number < 0) {
        number = -number;
    }
    do {
        count ++ ;
        number = number / 10;
    } while (number != 0);
    printf("这个整数有%d位\n", count);
    return 0;
}
#endif


#if 0
// 练习4-13
int main(){
    int n,sum = 0;
    printf("请输入一个正整数：");
    scanf("%d",&n);
    for (int i = 1; i <= n; i++) {
        sum = sum + i;
    }
    printf("从1到该整数的和为%d\n",sum);
    return 0;
}
#endif


#if 0
// 练习4-14
int main(){
    int no,i,j;
    printf("请输入一个正整数：");
    scanf("%d",&no);
    i = no / 10;//确定有多少整体个1234567890
    j = no - 10 * i;//确定在1234567890，余下几位
    while (i-->0) {
        printf("1234567890");
    }
    for (i = 1; i <= j; i++) {
        printf("%d",i);
    }
    printf("\n");
    return 0;
}
#endif


#if 0
//练习4-15
#include <stdio.h>
int main() {
    int beginHigh = 0, endHigh = 0;
    float weight = 0;
    int margin = 0;
    printf("开始数值（cm）:");
    scanf("%d", &beginHigh);
    printf("结束数值（cm）:");
    scanf("%d", &endHigh);
    printf("间隔值（cm）:");
    scanf("%d", &margin);
    for (int i = beginHigh;i <= endHigh; i+=margin) {
        weight = (i - 100)*0.9;
        printf("%d cm   %.2f kg\n", i, weight);
    }
    return 0;
}
#endif


#if 0
// 练习4-16
int main(){
    int no,i=1;
    printf("请输入一个整数：");
    scanf("%d",&no);
    while (i <= no) {
        printf("%d  ",i);
        i += 2;
    }
    printf("\n");
}
#endif


#if 0
// 练习4-17
int main(){
    int no;
    printf("请输入一个整数：");
    scanf("%d",&no);
    for (int i=1; i<=no; i++) {
        printf("%d的二次方是%d\n",i,i*i);
    }
    return 0;
}
#endif


#if 0
// 练习4-18
int main(){
    int no,i,j;
    printf("显示多少个*：");
    scanf("%d",&no);
    for (i = 1; i <= (no / 5); i++) {
        printf("*****\n");
    }
    for (j = 1; j <= (no % 5); j++) {
        printf("*");
    }
    printf("\n");
    return 0;
}
#endif


#if 0
// 练习4-19
int main(void)
{
    int i , n;
    int count=0;
    printf("整数值：");
    scanf("%d", &n);

    for (i = 1; i <= n; i ++) {
        if (n % i == 0){
            count++;
            printf("%d\n", i);
        }
    }
    printf("约数有%d个\n",count);

    return 0;
}
#endif


#if 0
// 练习4-20
int main()
{
    int i, j ;
    
    printf("   |") ;
    for(i = 1; i <= 9; i++)
    {
        printf("%3d", i) ;
    }
    printf("\n") ;
    
    for(i = 1; i <= 31; i++)
        printf("-") ;
    printf("\n") ;
    
    for(i = 1; i <= 9; i++)
    {
        printf("%2d |", i) ;
        for(j = 1; j <= 9; j++)
        {
            printf("%3d", i*j) ;
        }
        printf("\n") ;
    }
    return 0 ;
}
#endif


#if 0
// 练习4-21
int main(){
    int no,i,j;
    printf("请输入一个整数：");
    scanf("%d",&no);
    for (i = 1; i <= no; i ++) {
        for (j = 1; j <= no; j++)
            putchar('*');
        putchar('\n');
    }
    return 0;
}
#endif


#if 0
// 练习4-22
int main(void)
{
    int i , j;
    int height, width,temp;

    puts("让我们来画一个长方形。");
    printf("高："); scanf("%d", &height);
    printf("宽："); scanf("%d", &width);
    if (height > width) {
        temp = height;
        height = width;
        width = temp;
    }

    for (i = 1; i <= height; i ++) {
        for (j = 1; j <= width; j++)
            putchar('*');
        putchar('\n');
    }

    return 0;
}
#endif


#if 0
// 练习4-23-1
int main(void)
{
    int i , j, len;

    puts("生成直角在左上方的等腰直角三角形。");
    printf("短边：");
    scanf("%d", &len);

    for (i = len; i >=1; i --) {
        for (j = 1; j <= i; j++)
            putchar('*');
        putchar('\n');
    }

    return 0;
}
#endif



#if 0
// 练习4-23-2
int main(void)
{
    int i , j, len;

    puts("生成直角在右上方的等腰直角三角形。");
    printf("短边：");
    scanf("%d", &len);

    for (i = len; i >=1; i --) {
        for (j = 1; j <= len - i; j++) {
            putchar(' ');
        }
        for (j = 1; j <= i; j++)
            putchar('*');
        putchar('\n');
    }

    return 0;
}
#endif


#if 0
// 练习4-24
int main()
{
    int n;
    printf("让我们来画一个金字塔。\n");
    printf("金字塔有几层:");
    scanf("%d",&n);
    for (int i = 1;i<=n; i++) {
        for (int j = 1; j<=n-i; j++) {
            putchar(' ');
        }
        for (int j=1;j<=i ; j++) {
            putchar('*');
        }
        for (int j=1; j<i; j++) {
            putchar('*');
        }
        putchar('\n');
    }
    return 0;
}
#endif
